Moving applications on multi-screen computing device

ABSTRACT

Examples are related to operating a user interface of a dual-screen computing device. One example provides a computing device, comprising a first portion comprising a first display and a first touch sensor, and a second portion comprising a second display and a second touch sensor, the second portion connected to the first via a hinge, the hinge defining a seam between the first display and the second display. The computing device is configured to receive a touch input at the first display moving an application that is currently displayed on the first display and not on the second display toward the second display, detect the touch input releasing the application within a predetermined area, and span the application across the first display and the second display.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/717,988 filed Dec. 17, 2019, which claims priority to U.S.Provisional Patent Application Ser. No. 62/909,191, filed Oct. 1, 2019,the entirety of each of which is hereby incorporated herein by referencefor all purposes.

BACKGROUND

Some mobile electronic devices, such as smart phones and tablets, have amonolithic handheld form in which a display occupies substantially anentire front side of the device. Other devices, such as laptopcomputers, include a hinge that connects a display to other hardware,such as a keyboard and cursor controller (e.g. a track pad).

SUMMARY

Examples are disclosed that relate to operating a user interface of amulti-screen computing device. One example provides a computing device,comprising a first portion comprising a first display and a first touchsensor, and a second portion comprising a second display and a secondtouch sensor, the second portion connected to the first portion via ahinge, the hinge defining a seam between the first display and thesecond display. The computing device is configured to receive a touchinput at the first display moving an application that is currentlydisplayed on the first display and not on the second display toward thesecond display, detect the touch input releasing the application withina predetermined area, span the application across the first display andthe second display such that a portion of application content is hiddenbehind the seam, receive a touch input moving the spanned application,and move the spanned application in a direction of the touch input toreveal at least a portion of the application content hidden behind theseam.

Another example provides a computing device, comprising a first portioncomprising a first display and a first touch sensor, a second portioncomprising a second display and a second touch sensor, the secondportion connected to the first portion via a hinge, the hinge defining aseam between the first display and the second display, a logic device,and a storage device holding instructions executable by the logicmachine. The instructions are executable to receive a touch input at thefirst display moving an application from the first display toward thesecond display, when the touch input releases the application within afirst predefined area, to move the application to the second display,and when the touch input releases the application within a secondpredetermined area, to span the application by displaying theapplication across the first display and the second display.

Another example provides a method enacted on a computing device, thecomputing device comprising a first portion comprising a first displayand a first touch sensor, and a second portion comprising a seconddisplay and a second touch sensor, the second portion connected to thefirst portion via a hinge. The method comprises displaying a firstapplication on the first display, displaying a second application on thesecond display, receiving a touch input at the first display moving thefirst application toward the second display, detecting the touch inputreleasing the application within a predetermined area, and stacking thefirst application over the second application on the second displaybased at least upon the touch input releasing the application within thepredetermined area.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example multi-screen computing device.

FIGS. 2-5 show example poses for a dual-screen computing device.

FIGS. 6A and 6B show an example spanning of an application and anexample revealing of content of the spanned application that is hiddenby a hinge.

FIGS. 7-9 illustrate an example scaling of an application in response toa user touch input dragging the application.

FIG. 10 shows a plot of an example vertical movement of an applicationas a function of touch position in a Y direction.

FIG. 11 shows a plot of an example application scaling as a function oftouch position in a Y direction.

FIGS. 12 and 13 show example hint images displayed based on touch inputsmoving an application from one display to another display.

FIGS. 14-17 show example hint images displayed based on touch inputscrossing various threshold distances.

FIG. 18 shows an example hint image displayed in response to a touchinput for stacking applications.

FIG. 19 shows an example hint image displayed in response to a touchinput for swapping applications.

FIG. 20 shows an example user interface while stacking an applicationand then unstacking the application within a threshold time.

FIG. 21 shows an example user interface depicting launching a new taskfrom a link in an application while another application is open onanother display.

FIG. 22 shows an example user interface depicting spanning of anapplication over another application, and then contracting theapplication, thereby restoring the application beneath the spannedapplication.

FIG. 23 shows an example user interface depicting spanning anapplication when another application is open on another display, andcontracting the spanned application to either display, where a swapoccurs if the spanned application is contracted to the other display.

FIG. 24 shows an example user interface depicting spanning anapplication when two other applications are stacked on another display,and contracting the spanned application to either display, where a swapoccurs if the spanned application is contracted to the other display.

FIG. 25 shows an example user interface depicting spanning andcontracting of an application when a second application is stackedbehind the application, and a third application is open on anotherscreen.

FIG. 26 shows an example user interface depicting spanning andcontracting of an application when a second application is stackedbehind the application, and two other applications are stacked onanother screen.

FIG. 27 shows an example method of operating a dual screen computingdevice.

FIGS. 28A-28E show other example methods of operating a dual screencomputing device.

FIGS. 29A-29B show an example user interface depicting interactions withan applications folder, wherein pinned applications automatically movebased on the interactions with the applications folder.

FIG. 30 shows another example method of operating a dual screencomputing device.

FIG. 31 shows an example user interface depicting pinning and unpinningapplications.

FIG. 32 shows an example user interface depicting moving pinnedapplications in a double portrait mode.

FIG. 33 shows an example user interface depicting interaction with anapplication set.

FIG. 34 shows a block diagram of an example computing system.

DETAILED DESCRIPTION

The disclosed examples relate to a computing device having amulti-screen configuration. FIG. 1 shows an example multi-screencomputing device in the form of a dual-screen computing device 100. Thecomputing device 100 includes a first portion 102 and a second portion104 that respectively include a first display 106 and a second display108. A hinge 110 arranged between the first and second portions 102 and104 allows the relative pose between the portions and their displays tobe adjusted. The computing device 100 may be configured to determine therelative pose between the first and second portions 102 and 104 (e.g.via motion sensor data from one or more motion sensors in each portion),and adjust a function of the computing device based on the relativepose.

Each of the first display 106 and the second display 108 may be atouch-sensitive display having a touch sensor. The touch sensor(s) maybe configured to sense multiple sources of touch input, such as a digitof a user and a stylus manipulated by the user, and may sense multipleconcurrent touches. The computing device 100 may assume any suitableform, including but not limited to various mobile devices (e.g.,foldable smart phone, tablet, or laptop).

The first portion 102 includes a first three-dimensional pose sensorsystem 114 configured to provide output indicative of athree-dimensional pose of the first portion 102, and the second portion104 includes a second three-dimensional pose sensor system 116configured to provide output indicative of a three-dimensional pose ofthe second portion 104. In some examples, the first and second posesystems 114 and 116 each includes an accelerometer and a gyroscope, andoptionally a magnetometer. The output produced by the first and secondpose systems 114 and 116 may be used to determine a three-dimensionalpose of first and second portions 102 and 104, respectively. In otherexamples, any other suitable sensor or sensors may be used to sense therelative orientations of the displays, such as an optical or mechanicalencoder incorporated into the hinge.

FIGS. 2-5 show various example display poses for the dual-screencomputing device 100. More specifically, FIG. 2 shows a single portraitpose (in which either display 106 or 108 may face the user), FIG. 3shows a double portrait pose, FIG. 4 shows a single landscape pose (inwhich either display 106 or 108 may face the user), and FIG. 5 shows adouble landscape pose. Depending on a pose of the computing device 100,a user interface of the computing device 100 may be configured tooperate in a certain manner and/or respond to touch inputs differently.For example, in FIG. 2 and FIG. 4 , the second portion 104 may be foldedvia the hinge 110 behind the first portion 102, or vice versa. From theperspective of a user of the computing device 100, when the seconddisplay is folded behind the first portion, the second display 108 maybe imperceptible. As such, the computing device 100 may render graphicalcontent that was previously displayed across both the first display 106and the second display 108 fully onto the first display 106, may ceasedisplaying images on the second display 108, and/or may also ceasereceiving touch inputs on the second display 108. Various examples ofoperating a user interface and responding to touch inputs based on thepose of the computing device are further described below.

In some examples, a touch input may span an application across both afirst display and a second display of a dual-screen device. FIGS. 6A and6B show an example user interface displayed when spanning an application600 across the first display 106 and the second display 108 of the firstportion 102 and the second portion 104 of the dual-screen device 100.First, the user interface at 602 shows application 600 open on thesecond display 108 of the second portion 104, while the first display106 on the first portion 102 is unoccupied by any applications. At 604,the user interface shows that a touch input 606 has dragged theapplication 600 from the second display 604 toward the first display602. The touch input 606 may originate at a location along anapplication navigation bar 608 that is displayed at the bottom of theapplication 600. The application navigation bar 608 may be configured toreceive user inputs related to moving, dismissing, or otherwisemanipulating the application 600. The touch input 606 may release theapplication 600 when the application 600 is in a predetermined area,e.g. within a threshold distance from a seam 610 in between the twodisplays (as defined by the hinge 110 that connects the two deviceportions). Example predetermined areas for triggering certain userinterface actions are discussed in more detail in regard to FIGS. 12-17.

The user interface at 612 shows the application 600 spanned across bothdisplays in response to the touch input releasing the application 600. Amask may be applied to a rendering of the application in a locationcorresponding to the seam 610 when the application is spanned. Suchmasking may help the display of the spanned application (and alsoapplication windows moving across the seam) to appear more natural, asopposed to splitting the full image between the two displays. However,such masking also causes a small area of the displayed application to beunviewable. As such, a user may desire to reveal the content beingblocked by the seam. FIG. 6B at 614 and 616 show example interactions inwhich a user moves the application 600 (e.g. by touching and dragging)to reveal content hidden by the seam 610. Any suitable touch inputs maytrigger offsetting of the application to reveal content behind the seam610. As examples, a touch input may swipe, touch and drag, or perform amulti-finger gesture to the left or right from the seam, from a seamcorner, etc. in double portrait mode. The same touch inputs may applyexcept in up or down directions from the seam in double landscape mode.At 614, the user interface shows a touch input moving the applicationtoward the left, and at 616, the user interface shows a touch inputmoving the application toward the right. The spanned application maythereby be moved in a direction of the touch input to reveal at least aportion of the application content hidden behind the seam. In eitherexample, a user may then move the application back to the originalspanned mode shown at 612, such as by tapping a revealed arrow userinterface control 618 or 620 (shown at 614 and 616), or by dragging andreleasing the application back toward the seam. In other examples, suchmasking may not be applied, and instead the application may be dividedinto two portions that together make up the entire image. In yet otherexamples, such a seam between multiple displays may not be present, or aseam may also be configured to display content (e.g. via a flexibledisplay over the hinge).

In some examples, a touch input may move an application while scalingthe application simultaneously. FIGS. 7-9 illustrate an example of thescaling of a displayed application in response to a user touch inputdragging the application. As shown, an origin of the scaling of theapplication may be set dynamically by horizontal touch position. Forexample, FIG. 7 shows a touch input 700 that starts at a right bottomcorner of the application, FIG. 8 shows a touch input 800 that starts ata middle of the bottom of the application, and FIG. 9 shows a touchinput 900 that starts at a left bottom corner of the application. Inthese examples, the scaling decreases based upon a vertical movementdistance from the bottom of the display, and an origin of the movementis based upon the initial touch location of the touch input. The dynamicpositioning of the origin of scaling may help to create the effect thatthe application follows the user's finger or stylus. The automaticscaling that occurs with movement of an application may help to betterindicate to the user that the application is currently being moved whilekeeping the content of the application visible. Further, once released,expansion of the application back to its original size may also help tobetter indicate to the user that the application is no longer beingmoved by user input. Automatic scaling when moving an application mayfurther help provide a more seamless transition of the application to arecent applications list or task switcher for switching betweenapplications, as examples. For example, a preview for a recentapplications list may be triggered when a gesture velocity for movingapplication drops to within a threshold velocity close to zero.

In some examples, an application may be moved in response to ahorizontal movement and scaled in response to a vertical movement inportrait poses, and moved in response to a vertical movement and scaledin response to a horizontal movement in landscape poses. Further, theratio of movement of the touch input to movement of the application onthe user interface may change as a function of touch position. FIG. 10shows a plot of an example vertical movement of an application on adisplay as a function of touch position in a Y direction when thedisplay device is in a portrait pose. In this example, the position ofan application follows a user's touch in a 1:1 ratio from a Y positionof pixel 720 to pixel 400. Next, from a Y of touch from pixels 400 to100, the change in Y position of the application compared to the changein touch location varies at a ratio of less than 1:1 from pixels 400 to200. From Y of touch at pixels 100 to 0, the Y position of theapplication versus the touch position linearly varies at even a lesserratio. In other examples, any other suitable mapping of touch movementto application movement may be used.

Likewise, the application scaling also may change as a function of touchposition. FIG. 11 shows a plot of an example application scaling as afunction of touch position in a Y direction. From Y of touch at pixels720 to 400, the application may scale linearly at a first rate from 100%to 30% scale; from Y of touch at pixels 400 to 300, the application mayscale linearly, but at a lesser rate, from 30% to 20% scale; and from Yof touch less than 300, the scale of the application may remain at 20%,thus not decreasing further. In the depicted example, movement of theapplication in a horizontal direction while in a portrait mode mayfollow the user's touch in a 1:1 ratio at all positions of X, andhorizontal movement may not cause the application to scale, as anexample. Movement of an application in a landscape mode also may displaymovement rate and/or scaling adjustments.

In double portrait and double landscape poses, movement of theapplications from one display to the other display may be accompanied byhint images that are displayed to indicate how an application may moveor behave based on the touch input. FIGS. 12 and 13 show example hintimages 1200 and 1300 that may be displayed while moving an applicationin a double portrait pose and a double landscape pose, respectively. Theillustrated example hint images indicate that if a touch input currentlydragging the application were to be released at the current location,then the application would snap to or move to the display on which hintimage is displayed.

FIGS. 14-17 show example hint images displayed based on touch inputsmoving an application to within example threshold distances. In thesefigures, a transition zone 14 occupies a portion of the first display,and a portion of the second display. FIG. 14 illustrates an example inwhich a touch input drags an application from the second display towardthe first display. In this figure, a first fraction 144 of theapplication, as defined from a left edge of the application to exampleline A, has not passed a first boundary 145 of the transition zone 14,and no hint images are yet displayed, indicating that if the touch inputwere to release the application at that position, the application wouldbe displayed again at the original position without any movement.

FIG. 15 shows the application having been moved sufficiently far suchthat the first fraction 144 of the application has passed the firstboundary 145 of the transition zone 14. In response, a hint image isdisplayed on the first display, indicating that the application willmove to the first display upon release. FIG. 16 shows that theapplication has been moved so that a second, larger fraction 146 of theapplication, as defined from a left edge of the application to exampleline B, passes the first boundary 145 of the transition zone 14, and inresponse a hint image is displayed spanning both displays, indicatingthat the application will span across both displays upon release. FIG.17 shows that the application has been moved so that the second, largerfraction 146 of the application passes a second boundary 147 of thetransition zone 14, and in response a hint image is displayed on thefirst display, indicating that the application will move to the firstdisplay upon release. As such, there may be more than one predeterminedarea to which an application may be moved to trigger a same action.

FIG. 18 shows an example hint image displayed in response to a touchinput moving an application to a display currently occupied by anotherapplication. In this example, a touch input moves the application fromthe second display toward the first display, but the first display isalready occupied by another application. Upon dragging the application acertain threshold distance (such as those shown in FIG. 15 and FIG. 17 )or to a certain predetermined area, the other application on the leftmay slightly shrink and become greyed out as a hint image indicatingthat the dragged application would stack on top of the other applicationupon release and potentially cause the other application to close insome examples.

FIG. 19 shows an example hint image displayed in response to a touchinput to swap applications. Here, the application has been dragged suchthat the first portion 144 of the application has passed an exampleswapping threshold line labeled as line C. Alternatively, theapplication may be dragged such that a far edge 1902 of the applicationpasses the first boundary 145 into the transition zone 14. In responseto either occurrence, a hint image is displayed showing the secondapplication on the left at a smaller scale, and further showing thesecond application as a greyed out image on the second display,indicating that the application on the right will swap with theapplication on the left upon release. It will be understood that in someexamples, hint images may not be displayed, but the same actions uponrelease within the predetermined areas may be applied regardless ofwhether hint images are displayed. Further, other suitable hint imagesmay be used in other examples.

As mentioned above, in some examples, when a first application is movedfrom a first display to a second display that is already occupied by asecond application, the first application is stacked on top of thesecond application. In some such examples, the second application mayremain behind the first application indefinitely in a suspended state,until the first application is either moved away or dismissed. In othersuch examples, the second application may be dismissed automatically. Inyet other examples, the second application may remain stacked behind thefirst application for a predetermined threshold amount of time, afterwhich the second application may be dismissed and may then be accessiblefrom a recent applications list. Within that threshold amount of time, auser may undo the stacking in order to reveal and resume the secondapplication again. FIG. 20 shows an example user interface whilestacking an application and then unstacking the application within athreshold time. At 2002, Application 1 is on the left display, andApplication 2 is on the right display. At 2004, a touch input movesApplication 2 toward the left display onto Application 1, andApplication 1 is shown smaller and transparent, as an example hint imageindicating the stacking and possible application dismissal At 2006,Application 2 has been stacked on top of Application 1. However, beforea threshold amount of time has passed, a touch input moves Application 2back toward the right display, as shown at 2008, thereby revealingApplication 1 before it is dismissed. After the threshold amount oftime, the dismissed application may be resumed again from a recentapplications list, for example. Any suitable threshold time may be used.In some examples, the threshold time may be between five and twentyseconds, and may be ten seconds in a more specific example. Further, insome examples, an application that has become stacked underneath anotherapplication may instead (either immediately or after a predeterminedthreshold of time) be automatically transferred to a recent applicationslist for retrieval by the user.

In some examples, a user may trigger the launch of a new applicationfrom a currently open application, or a new instance of the sameapplication. When in double portrait or double landscape mode, the newtask may automatically be launched from the first application fordisplay on the display opposite the first application, if that displayis unoccupied.

In some instances, the user may attempt to launch a new task from acurrently opened application when the opposite display is alreadyoccupied. FIG. 21 shows an example user interface depicting launching anew task from a link in an application while another application is openon another display. At 2102, the left display is occupied by Application1 which contains a link, and the right display is occupied byApplication 2. At 2104, the user clicks on the link, which launches anew application, Application 3. Because the adjacent display isoccupied, the new Application 3 opens on the same display as Application1, stacking over Application 1 and suspending Application 1, as shown at2106. Application 1 may be displayed as if it is receding and/orshrinking as Application 3 launches and expands to cover the leftdisplay. At 2108, Application 3 has been stacked on top of Application1. In this instance, the stacking may not result in the automaticdismissal of Application 1. Application 1 may be restored, for example,by user retrieval from a recent applications list, as mentioned above,or by a user touch input dismissing or moving Application 3 to theadjacent display.

Similarly, moving and spanning applications may behave differentlydepending on whether the display(s) are already occupied. FIGS. 22-26show various examples of spanning, stacking, swapping, and dismissal ofapplications in response to movements of one application when one ormore display(s) are already occupied by one or more other applications.FIG. 22 shows an example user interface depicting spanning of anapplication over another application and then contracting of the spannedapplication, thereby restoring the application beneath the spannedapplication. At 2202, Application 1 is displayed on the first display,and Application 2 is displayed on the second display. At 2204, a usertouch input moves Application 1 toward the seam, and releases to spanApplication 1 across both displays, stacking Application 1 overApplication 2 on the second display, as shown at 2206. At 2208, a usertouch input contracts Application 1 and moves Application 1 back to thefirst display. At 2210, Application 2 is revealed and restored.

FIG. 23 shows spanning and contracting an application when anotherapplication is open on another display, and also shows differentoutcomes as a result of contracting Application 1 to different screens.At 2302, Application 1 is displayed on the first display, andApplication 2 is displayed on the second display. At 2304, Application 1is shown spanned across both displays, e.g. after a touch input draggingand releasing Application 1 near the seam, thereby stacking at least aportion of Application 1 over Application 2 on the second display. Theuser may contract Application 1 back toward the first display, restoringApplication 2 on the second display, as shown at 2306. Alternatively,the user may contract Application 1 toward the second display. Ratherthan stacking Application 1 over Application 2, Application 1 may beautomatically swapped with Application 2, such that Application 2 isdisplayed on the first display, as shown at 2308. In other examples,swapping may be triggered when contracting a spanned application bymoving the spanned application to a “swap threshold area” within anouter edge of the display, e.g. as illustrated in FIG. 19. If thecontracted application is released outside of the swap threshold area,it may result in permanent stacking.

FIG. 24 shows spanning and contracting of an application when two otherapplications are stacked on another display. At 2402, Application 1 isdisplayed on the first display, and Application 2 is displayed on thesecond display while stacked over Application 3. At 2404, a user touchinput moves Application toward the seam, and upon release, Application 1spans across both displays, stacking over both Application 2 andApplication 3 on the second display, as shown at 2406. At 2408, a userinput contracts spanned Application 1, but depending on which sideApplication 1 is contracted to, the result is different. At 2410,Application 1 is shown contracted to the first display, restoring theoriginal arrangement. However, as shown at 2412, when the spannedapplication is contracted at the second display where the stackedapplications were originally located, the stacked applications swaplocations with the spanned application. As mentioned above, in otherexamples, swapping may be triggered when contracting the spannedapplication to a “swap threshold area” within an outer edge of thedisplay, and stacking may result when the spanned application isreleased outside of the swap threshold area.

FIG. 25 shows spanning and contracting an application when a secondapplication is stacked behind the application, and a third applicationis open on another display. At 2502, Application 1 is stacked overApplication 2 on the first display, and Application 3 is displayed onthe second display. At 2504, a user touch input moves Application 1toward the seam. Application 1 is thereby spanned across both displays,stacking over both Application 2 on the first display and Application 3on the second display, as shown at 2506. When the spanned application iscontracted, at 2508, the application may stack above either the secondapplication or the third application, depending to which side theapplication is contracted. At 2510, Application 1 is contracted to thefirst display, restoring Application 3 on the second display. At 2512,Application 1 is contracted to the second display, revealing Application2 on the first display while Application 1 is stacked over Application 3on the second display.

FIG. 26 shows spanning and contracting an application when a secondapplication is stacked behind the application, and two otherapplications are stacked on another display. At 2602, Application 1 isstacked over Application 2 on the first display, and Application 3 isstacked over Application 4 on the second display. At 2604, a user touchinput moves Application 1 toward the seam. When Application 1 isspanned, as shown at 2606, Application 1 remains stacked overApplication 2 on the left display, and further stacks over Application 3and Application 4 on the right display. A user touch input thencontracts Application 1, at 2608. When the user contracts Application 1back to the left display, at 2610, Application 1 stacks back overApplication 2 on the left display, while Application 3 and Application 4remain stacked on the right display. In contrast, when the usercontracts Application 1 on the right display, as shown at 2612,Application 1 stacks over Application 3, dismissing Application 4. Thismay occur, for example, if a setting dictates that only two applicationsmay be stacked on a display at any time (other than when spanning). Inother examples, more than two applications may be stacked at a time perdisplay.

FIG. 27 shows an example method 2700 of operating a dual screencomputing device. Method 2700 comprises, at 2702, displaying a firstapplication a first display, and at 2704, displaying a secondapplication at a second display of the dual screen computing device.Method 2700 further includes, at 2706, receiving a touch input at thefirst display opening a third application while the first application isdisplayed on the first display, e.g. from a link within the firstapplication. At 2708, method 2700 comprises displaying the thirdapplication as being stacked over the first application. At 2710, method2700 includes receiving a touch input closing the third application, andin response, closing the third application and displaying the firstapplication on the first display. The computing device may open newapplications from currently running applications based on whether anyapplication(s) are already open on either of the first display or thesecond display.

FIGS. 28A-E shows another example method 2800 of operating a dual-screencomputing device, and more particularly illustrate various methods ofdisplaying an application based upon the application being moved todifferent predetermined areas of the displays. Method 2800 includes, at2802, receiving a touch input at the first display dragging the firstapplication from the first display toward the second display. In someexamples, this may include receiving the touch input at an applicationnavigation bar (e.g. displayed at a bottom, side, or other suitablelocation on the display, as illustrated in FIG. 6 ). While the firstapplication is being dragged, a size of the first application may bescaled based at least in part on a direction of movement of the touchinput, at 2804. At 2806, method 2800 includes displaying a hintindicating where the application will move based at least in part on thetouch input dragging the first application to within a predeterminedarea. For example, hint images indicating that the first applicationwill be spanned, moved, swapped, or stacked may be displayed indicatinga result of the movement of the first application based on the touchinput dragging the first application if the touch input is completed.

From 2802, method 2800 may continue to 2808 of FIG. 28A, or to FIGS.28C, 28D, or 28E, which illustrate different outcomes depending on wherethe first application is released.

For example, method 2800 may include, at 2808, detecting a touch inputreleasing the first application within a first predetermined area. Thismay include, at 2810, detecting the touch input releasing the firstapplication within a threshold distance of a seam of the computingdevice in a hinge region of the device. In other examples, such a seammay not be present. At 2812, method 2800 includes spanning theapplication across the first display and the second display, such that aportion of application content is hidden behind the seam. Spanning mayinclude, at 2824, applying a mask to a rendering of the firstapplication in a location corresponding to a seam in between the firstdisplay and the second display. In other examples, an image of the firstapplication may be divided such that the full image is split between thetwo displays.

Further, spanning may include, at 2816, stacking a portion of thespanned, first application over a second application on the seconddisplay, where a second application is open on the second display.

Continuing with FIG. 28B, method 2800 further includes, at 2818,receiving a touch input moving the spanned first application. Method2800 also includes, at 2820, moving the spanned application in adirection of the touch input to reveal at least a portion of theapplication content hidden behind the seam. Further, method 2800includes, at 2822, receiving a touch input moving and contracting thespanned application to either one of the first display and the seconddisplay, and displaying the first application on one of the firstdisplay and the second display based on the touch input. For example, adrag-and-release touch input or a fling gesture may contract the firstapplication toward the first display, and the first application may bemoved to the first display in response. In instances where the firstapplication was stacked over the second application, moving the firstapplication may reveal the second application, as indicated at 2824. Asanother example, the touch input may contract the first application ontothe second display, such that the first application remains stacked overthe second application, as shown at 2826, thereby potentially leading tothe closing of the second application in some examples, e.g. immediatelyor after a threshold amount of time. As yet another example, the touchinput may contract the first application onto the second display, suchthat the first application swaps positions with the second application,instead of stacking on top of the second application, as indicated at2828.

Where the touch input is released in a different area than the firstpredefined area, a different result may occur than spanning. Forexample, FIG. 28C shows, at 2736, detecting the touch input releasingthe first application within a second predefined area. In response, asindicated at 2832, the first application is moved to the second display,instead of being spanned across both displays. Such an action also mayresult from a fling gesture in which a touch input is moved from one ofthe first and second display toward the other of the first and seconddisplay with a velocity greater than a threshold velocity, and/or anacceleration greater than a threshold acceleration, also as indicated at2830. Moving the first application to the second display may include, at2834, stacking the first application over a second application on thesecond display. In some examples, the computing device may close thesecond application after a threshold amount of time of the firstapplication being stacked over the second application, as shown at 2836.This may allow a user to move the stacked first application back to thefirst display to reveal the second application on the second displaybefore the second application is closed. Thus, method 2800 furtherincludes, at 2838, receiving a touch input moving the first applicationback to the first display, and in response, displaying the firstapplication on the first display. Where the first application wasstacked over a second application and moved within a threshold amount oftime, this also may include displaying the second application on thesecond display.

In another example response to the touch input received at 2802, FIG.28D shows, at 2842, detecting the touch input releasing the firstapplication within a third predefined area, and swapping the firstapplication on the first display with the second application on thesecond display. As yet another example response to the touch gesture of2802, FIG. 28E shows, at 2842, detecting the touch input releasing thefirst application within a fourth predefined area, and closing the firstapplication in response. The touch input may drag-and-release the firstapplication in any other suitable predetermined areas to trigger othercorresponding actions, such as moving an application to a recentapplications list, etc.

FIGS. 29A-B shows an example user interface depicting interactions withan applications folder in a double portrait mode of the dual-screendevice 100. At 2902, the user interface shows a pinned applications bar2904 on the first display 106 of the first portion 102, and a pinnedapplications bar 2906 on the second display 108 of the first portion104. The user interface at 2902 also shows a touch input 2908 tapping anapplications folder 2910 on the first display 106 display. At 2912, theapplications folder 2910 is opened on the first display 106. The openapplications folder 2910 may be at least partially transparent, suchthat content behind it is still visible. Further, the pinnedapplications that were on the pinned applications bar 2904 on the firstdisplay 106 are shifted over to the pinned applications bar 2906 on thesecond display 108. In some examples, the shifting may be animated sothat a user views the transition of the pinned applications to the otherdisplay. It will be understood that shifting of the pinned applicationsmay occur in any instance where an application or system component (e.g.a folder) occupies either screen in a dual-display mode. At 2914, atouch input 2916 performed on the second display 108 drags from left toright on the second display 108, which moves the items displayed behindthe applications folder 2910 on the first display 106 to the seconddisplay 108. At any time, a user may close the applications folder 2910,e.g. by tapping an “X” icon shown in the folder.

Continuing with FIG. 29B, at 2918, the applications folder 2910 isopened on the second display 108, such as after a touch input has movedthe applications folder from the first display 106 to the second display108, or after touch inputs have closed the applications folder 2910 onthe first display 106, and reopened the applications folder 2910 on thesecond display 108. The pinned applications that were previously on thepinned applications bar 2906 of the second display 108 are shifted tothe pinned applications bar 2904 on the first display 106. Similarly, atouch input 2920 may be performed from right to left to shift contentbehind the applications folder 2910 on the second display 108 to thefirst display 106, as shown similarly at 2914. At 2924, while theapplications folder 2910 is open, a touch input 2926 may move anapplication 2928 that is not currently in the applications folder 2910into the folder 2910. It will be understood that pinned applications mayalso shift in response to the opening of an application on one display,and is not limited to the opening of an applications folder. Suchbehavior may allow the pinned applications to remain visible to a user.

FIG. 30 shows an example method 3000 of operating a dual screencomputing device. Method 3000 includes, at 3002, displaying one or moreapplications in a pinned applications bar on each of the first displayand the second display. Method 3000 further includes, at 3004, receivinga touch input opening an application or folder on one of the firstdisplay and the second display. In response, method 3000 includes, at3006, displaying the opened application or folder on the one of thefirst display and the second display, and shifting pinned applicationson the one of the first display and second display to the other of thefirst display and the second display. For example, if a touch inputopens an application on the first display, the pinned applications inthe pinned applications bar on the first display may shift to the pinnedapplications bar of the second display. Likewise, if a touch input opensan application on the second display, the pinned applications in thepinned applications bar on the second display may shift to the pinnedapplications bar of the first display. It will be understood that thismay also apply when opening an applications folder, as described inregard to FIGS. 29A-B.

FIG. 31 shows an example user interface depicting pinning and unpinningapplications from a bar of pinned applications. At 3102, one applicationis pinned on the left display 102, and two applications are pinned onthe right display 104. At 3112, a touch input 3108 moves one of theunpinned application icons toward the bottom bar 3104. Within athreshold distance of the bar 3104, a hint image 3110 of the applicationicon may be displayed in the bar 3104, as shown at 3112. At 3114, thetouch input releases the application icon, and the application iconsnaps to the bar 3104, and is now a pinned application. At 3116, a touchinput 3118 unpins one of the pinned applications, moving it back to theunpinned applications.

In some examples, as shown in FIG. 32 at 3202, when no application orsystem component (e.g., folder) is open on either first display 102 orsecond display 104, a user may perform a left swipe/fling gesture 3208either on pinned applications bar 3206 or pinned applications bar 3204to shift the pinned applications that were previously on pinnedapplications bar 3206 on the second display 104 over to pinnedapplications bar 3204 on the first display 102. Similarly at 3212, theuser may also shift the pinned applications that were on pinnedapplications bar 3204 on the first display 102 over to the pinnedapplications bar 3206 on the second display 104 through a rightswipe/fling gesture 3214, either within the pinned applications bar 3204or a threshold area of pinned applications bar 3206. This gives the userthe control to launch whichever pinned application on the preferreddisplay. It will be understood that the above examples, including anyother windowing gestures described above, also apply to double landscapeposes as well, and the described gesture directions are relative. Infurther examples, in order to provide a user with additional efficiencyand convenience, a computing device may allow the creation of anapplication set, which links two or more applications together andcreates an application set icon. When the application set icon islaunched, the linked applications will simultaneously launch. FIG. 33shows interaction with an example application set icon 3306 representingan application set linking a first application to a second application.At 3302, a user may open the application set 3306 when the computingdevice is in a flip state, such that the first application and thesecond application both launch on the same display, with the firstapplication stacked over the second application. At 3312, the userunfolds the device. At 3314, the user moves 3316 the first applicationto the opposite display, revealing the second application that wasstacked underneath the first application and launched as part of theapplication set 3306. In other examples, an application set may belaunched when the computing device is in an unfolded state, and thefirst application and the second application launch on differentdisplays. In yet other examples, an application set may be launched whenone or more displays are already occupied by open applications, in whichcase any suitable stacking, swapping, and/or closing scheme may be usedin various examples.

It will be understood that the various user interface examples describedherein may apply to any suitable multiple display systems, includingdisplays systems other than mobile phones, such as multi-monitor displaysystems for desktop computers, surface-mounted multi-displays, virtualand/or augmented reality display systems, head-up displays, projecteddisplay systems, etc. Furthermore, although described above in thecontext of touch inputs, it will be understood that any of the abovetouch inputs and gestures may also be input via a suitable input device,e.g. a mouse controlling a cursor.

In some embodiments, the methods and processes described herein may betied to a computing system of one or more computing devices. Inparticular, such methods and processes may be implemented as acomputer-application program or service, an application-programminginterface (API), a library, and/or other computer-program product.

FIG. 34 schematically shows a non-limiting embodiment of a computingsystem 3400 that can enact one or more of the methods and processesdescribed above. Computing system 3400 is shown in simplified form.Computing system 3400 may embody the computer device 100 described aboveand illustrated in FIG. 1 . Computing system 3400 may take the form ofone or more personal computers, server computers, tablet computers,home-entertainment computers, network computing devices, gaming devices,mobile computing devices, mobile communication devices (e.g., smartphone), and/or other computing devices, and wearable computing devicessuch as smart wristwatches and head mounted augmented reality devices.

Computing system 3400 includes a logic device 3402, and a non-volatilestorage device 3404. Computing system 3400 may optionally include adisplay subsystem 3406, input subsystem 3408, communication subsystem3410, and/or other components not shown in FIG. 34 .

Logic device 3402 includes one or more physical devices configured toexecute instructions. For example, the logic device 3402 may beconfigured to execute instructions that are part of one or moreapplications, programs, routines, libraries, objects, components, datastructures, or other logical constructs. Such instructions may beimplemented to perform a task, implement a data type, transform thestate of one or more components, achieve a technical effect, orotherwise arrive at a desired result.

The logic device 3402 may include one or more physical processors(hardware) configured to execute software instructions. Additionally oralternatively, the logic device 3402 may include one or more hardwarelogic circuits or firmware devices configured to executehardware-implemented logic or firmware instructions. Processors of thelogic device 3402 may be single-core or multi-core, and the instructionsexecuted thereon may be configured for sequential, parallel, and/ordistributed processing. Individual components of the logic device 3402optionally may be distributed among two or more separate devices, whichmay be remotely located and/or configured for coordinated processing.Aspects of the logic device 3402 may be virtualized and executed byremotely accessible, networked computing devices configured in acloud-computing configuration. In such a case, these virtualized aspectsare run on different physical logic processors of various differentmachines, it will be understood.

Storage device 3404 may be a non-volatile storage device. Non-volatilestorage device 3404 includes one or more physical devices configured tohold instructions executable by the logic device 3402 to implement themethods and processes described herein. When such methods and processesare implemented, the state of non-volatile storage device 3404 may betransformed—e.g., to hold different data.

Non-volatile storage device 3404 may include physical devices that areremovable and/or built-in. Non-volatile storage device 3404 may includeoptical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.),semiconductor memory (e.g., ROM, EPROM, EEPROM, FLASH memory, etc.),and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tapedrive, MRAM, etc.), or other mass storage device technology.Non-volatile storage device 3404 may include nonvolatile, dynamic,static, read/write, read-only, sequential-access, location-addressable,file-addressable, and/or content-addressable devices. It will beappreciated that storage device 3404 is configured to hold instructionseven when power is cut to the storage device 3404.

In other examples, storage device 3404 may include volatile memory,which may include physical devices that include random access memory.Volatile memory is typically utilized by logic device 3402 totemporarily store information during processing of softwareinstructions. It will be appreciated that volatile memory typically doesnot continue to store instructions when power is cut to the volatilememory.

Aspects of logic device 3402 and/or storage device 3404 may beintegrated together into one or more hardware-logic components. Suchhardware-logic components may include field-programmable gate arrays(FPGAs), program- and application-specific integrated circuits(PASIC/ASICs), program- and application-specific standard products(PSSP/ASSPs), system-on-a-chip (SOC), and complex programmable logicdevices (CPLDs), for example.

When included, display subsystem 3406 may be used to present a visualrepresentation of data held by storage device 3404. The visualrepresentation may take the form of a graphical user interface (GUI). Asthe herein described methods and processes change the data held by thenon-volatile storage device, and thus transform the state of thenon-volatile storage device, the state of display subsystem 3406 maylikewise be transformed to visually represent changes in the underlyingdata. Display subsystem 3406 may include one or more display devicesutilizing virtually any type of technology. Such display devices may becombined with logic device 3402, volatile memory and/or non-volatilestorage device 3404 in a shared enclosure, or such display devices maybe peripheral display devices.

When included, input subsystem 3408 may comprise or interface with oneor more user-input devices such as a keyboard, mouse, touch screen, orgame controller. In some embodiments, the input subsystem may compriseor interface with selected natural user input (NUI) componentry. Suchcomponentry may be integrated or peripheral, and the transduction and/orprocessing of input actions may be handled on- or off-board. Example NUIcomponentry may include a microphone for speech and/or voicerecognition; an infrared, color, stereoscopic, and/or depth camera formachine vision and/or gesture recognition; a head tracker, eye tracker,accelerometer, and/or gyroscope for motion detection and/or intentrecognition; as well as electric-field sensing componentry for assessingbrain activity; and/or any other suitable sensor.

When included, communication subsystem 3410 may be configured tocommunicatively couple various computing devices described herein witheach other, and with other devices. Communication subsystem 3410 mayinclude wired and/or wireless communication devices compatible with oneor more different communication protocols. As non-limiting examples, thecommunication subsystem may be configured for communication via awireless telephone network, or a wired or wireless local- or wide-areanetwork, such as a HDMI over Wi-Fi connection. In some embodiments, thecommunication subsystem may allow computing system 3400 to send and/orreceive messages to and/or from other devices via a network such as theInternet.

Another example provides a computing device, comprising a first portioncomprising a first display and a first touch sensor, and a secondportion comprising a second display and a second touch sensor, thesecond portion connected to the first portion via a hinge, the hingedefining a seam between the first display and the second display. thecomputing device further includes a logic device, and a storage deviceholding instructions executable by the logic device to receive a touchinput at the first display moving an application that is currentlydisplayed on the first display and not on the second display toward thesecond display, detect the touch input releasing the application withina predetermined area, span the application across the first display andthe second display such that a portion of application content is hiddenbehind the seam, receive a touch input moving the spanned application,and move the spanned application in a direction of the touch inputmoving the spanned application to reveal at least a portion of theapplication content hidden behind the seam. The instructions may beadditionally or alternatively executable to span the application acrossthe first display and the second display by applying a mask to arendering of the displayed application in a location corresponding tothe seam. The instructions may be additionally or alternativelyexecutable to receive a touch input moving the spanned application toone of the first display and the second display, and display the spannedapplication on one of the first display and the second display. Theinstructions may be additionally or alternatively executable to displayone or more applications in a pinned applications bar on each of thefirst display and the second display, receive a touch input opening anapplications folder on one of the first display and the second display,and in response, display the applications folder on the one of the firstdisplay and the second display, and shift applications on the one of thefirst display and the second display to the other of the first displayand the second display. The predefined area may be a first predefinedarea, and the instructions may be additionally or alternativelyexecutable to detect a touch input moving the application toward thesecond display and releasing the application within a second predefinedarea, and move the application to the second display. The applicationmay be a first application, and the instructions may be additionally oralternatively executable to display a second application on the seconddisplay, upon detecting the touch input releasing the application withinthe second predefined area, stack the first application over the secondapplication on the second display. The instructions may be additionallyor alternatively executable to close the second application after athreshold amount of time of the first application being stacked over thesecond application. The application may be a first application, and theinstructions may be additionally or alternatively executable to displaya second application on the second display, detect a touch inputreleasing the application within a second predefined area, and swap thefirst application on the first display with the second application onthe second display. The application may be a first application, and theinstructions may be additionally or alternatively executable to displaya second application on the second display, wherein spanning the firstapplication across the first display and the second display comprisesstacking a portion of the first application over the second applicationon the second display, receive a touch input contracting the firstapplication, and display the first application on the first display, anddisplay the second application on the second display. The predefinedarea may be a first predefined area, and the instructions may beadditionally or alternatively executable to detect a touch inputreleasing the application within a second predefined area, and close theapplication. The instructions may be additionally or alternativelyexecutable to detect a touch input comprising a fling gesture, and movethe application to the second display. The instructions may beadditionally or alternatively executable to scale a size of theapplication based at least in part on a direction of movement of thetouch input. The instructions may be additionally or alternativelyexecutable to, prior to detecting the touch input releasing theapplication, display a hint indicating that the application will spanbased at least in part on the touch input moving the application towithin the predetermined area.

Another example provides a computing device, comprising a first portioncomprising a first display and a first touch sensor, a second portioncomprising a second display and a second touch sensor, the secondportion connected to the first portion via a hinge, the hinge defining aseam between the first display and the second display, a logic device,and a storage device holding instructions executable by the logicmachine to receive a touch input at the first display moving anapplication from the first display toward the second display, when thetouch input releases the application within a first predefined area,move the application to the second display, and when the touch inputreleases the application within a second predetermined area, span theapplication by displaying the application across the first display andthe second display. The application may be a first application, and theinstructions may be additionally or alternatively executable to, displaya second application on the second display, and when the user inputreleases the first application in a third predefined area, swap thefirst application on the first display with the second application onthe second display by displaying the first application on the seconddisplay and displaying the second application on the first display. Theapplication may be a first application, and the instructions may beadditionally or alternatively executable to, display a secondapplication on the second display, when the first application isdisplayed on the first display, receive a touch input at the firstdisplay opening a third application from the first application, anddisplay the third application as being stacked over the firstapplication. The instructions may be additionally or alternativelyexecutable to receive a touch input closing the third application, anddisplaying the first application on the first display.

Another example provides a method enacted on a computing device, thecomputing device comprising a first portion comprising a first displayand a first touch sensor, and a second portion comprising a seconddisplay and a second touch sensor, the second portion connected to thefirst portion via a hinge, the hinge defining a seam between the firstdisplay and the second display, the method comprising displaying a firstapplication on the first display, displaying a second application on thesecond display, receiving a touch input at the first display moving thefirst application toward the second display, detecting the touch inputreleasing the application within a predetermined area, and stacking thefirst application over the second application on the second displaybased at least upon the touch input releasing the application within thepredetermined area. The method may additionally or alternatively includereceiving a touch input moving the first application to the firstdisplay, and in response, displaying the first application on the firstdisplay and displaying the second application on the second display. Themethod may additionally or alternatively include closing the secondapplication after a threshold amount of time of the first applicationbeing stacked over the second application.

It will be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated and/ordescribed may be performed in the sequence illustrated and/or described,in other sequences, in parallel, or omitted. Likewise, the order of theabove-described processes may be changed.

The subject matter of the present disclosure includes all novel andnon-obvious combinations and sub-combinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

1. A method enacted on a computing device, the computing devicecomprising a first display and a second display, the method comprising:displaying an application set icon representing an application set, theapplication set comprising two or more applications represented by theapplication set icon; receiving a user input to launch the applicationset by selection of the application set icon; and in response toreceiving the user input to launch the application set, launching thefirst application and the second application.
 2. The method of claim 1,further comprising receiving a user input defining the application set.3. The method of claim 1, wherein the application set comprises thefirst application, the second application, and a third application. 4.The method of claim 1, wherein the first application is launched on thefirst display and the second application is launched on the seconddisplay.
 5. The method of claim 1, wherein the first application and thesecond application are launched as stacked on the first display.
 6. Themethod of claim 5, wherein the method further comprises receiving a userinput to move the first application to the second display, and inresponse to receiving the user input to move the first application tothe second display, displaying the first application on the seconddisplay.
 7. The method of claim 1, wherein the application set iconcomprises a first portion representing the first application and asecond portion representing the second application.
 8. The method ofclaim 1, wherein one or more of the first application or the secondapplication is displayed on as stacked on another application not in theapplication set.
 9. A computing device, comprising: a first display; asecond display; a logic device; and a storage device holdinginstructions executable by the logic machine to receive a user input todefine an application set comprising a first application and a secondapplication, and in response to the user input, create the applicationset comprising the first application and the second application anddisplay an application set icon representing the application set. 10.The computing device of claim 9, wherein the instructions executable toreceive the input from the user defining the application set areexecutable to receive an input to create an application set comprisingthe first application, the second application, and a third application.11. The computing device of claim 9, wherein one or more of the firstdisplay or the second display comprises a touch screen.
 12. Thecomputing device of claim 9, wherein the instructions are executable toreceive a user input selecting the application set icon, and in responseto the user input selecting the application set icon, launch the firstapplication and the second application.
 13. The computing device ofclaim 12, wherein the instructions are executable to launch the firstapplication on the first display and the second application on thesecond display.
 14. The computing device of claim 12, wherein theinstructions are executable to launch the first application and thesecond application as stacked on the first display.
 15. The computingdevice of claim 14, wherein the instructions are executable to receive auser input to move the first application to the second display, and inresponse to receiving the user input to move the first application,display the first application on the second display.
 16. The computingdevice of claim 9, wherein the instructions are executable to displayone or more of the first application or the second application asstacked over another application not in the application set.
 17. Acomputing device, comprising: a first display; a second display; a logicdevice; and a storage device holding instructions executable by thelogic machine to display a first set of one or more pinned applicationsin a pinned applications bar on the first display; display a second setof one or more pinned applications in a pinned applications bar on thesecond display; receive a user input opening an application on the firstdisplay; and in response to the user input opening an application,display the opened application on the first display, and shift the firstset of one or more pinned applications in the pinned applications bar onthe first display to the pinned applications bar on the second displayto the second display.
 18. The computing device of claim 17, wherein theinstructions are executable to receive a user input to shift the set ofone or more pinned applications from one of the first display or thesecond display to the other of the first display or the second display,and in response to the user input to shift the set of one or more pinnedapplications, shift the set of one or more pinned application to theother of the first or second display.
 19. The computing device of claim17, wherein the instructions are executable to receive a user input tomove an unpinned application towards the pinned applications bar, and inresponse to the user input to move the unpinned application, move theunpinned application, wherein movement of the unpinned application towithin a threshold distance of the pinned applications bar pins anunpinned application to the pinned applications bar.
 20. The computingdevice of claim 17, wherein the instructions are executable to receive auser input to move a pinned application away from the pinnedapplications bar, and in response to the user input to move the pinnedapplication, move the pinned application away from the pinnedapplications bar and unpin the pinned application.